Running Algol68-R under George3

This description is intended for those who have run George3 on a real system.

There is also an unmodified section of the Leeds University 1906A Users Manual. The sections on subsystems and on Macros available are specific to the Leeds University system, and do not apply. However, most of the information in §1 to §5 is relevant to any George3 system. There is also reference to George4. This was the virtual memory version of George, and had the same use interface while using paged memory management.

For running MOP you will need a Java runtime system. If you do not have Java on your machine, you can get it from Sun's javasoft website.

Filestore

The filestore is from increment 7 and is a near descendent of the official issue system.

There is a dump tape 11000 that can be restored onto just 2 simulated EDS60s. These instructions tell how to achieve this.

General System Organisation

Under the current directory there must be a directory called data. In this directory are files emulating the basic peripherals and the disk drives.

Magnetic tapes are held in the tape library which by default is emulated by the contents of a directory called tapes. However, this directory can be redefined, so that the tape images can be read directly from the any directory.

A special file data/config.sys defines the configuration of peripherals. It is headed by a comment that describes its format.

Conventionally, the disk drives start at unit 40, which holds the GEORGE3 exofile. There may be parts of the system that assume this.

Instructions for running George3 from this ZIP file

These instructions are written for running on a Win32 system. However, they also work for UNIX systems, so long as an appropriately compiled version of g3exec is used. The reader may have to replace a backslash by / in a few cases. In what follows, dedicated PC users my be surprised by the frequent UNIX-style use of forward slash.

Starting George and restoring the filestore

  1. Unzip the zip file, preserving the path names. This will create a sub-directory called a68demo.
  2. Create a command window.
  3. Do cd a68demo.
  4. Add the bin directory to the path
        e.g.: path %path%;bin
  5. Create a telnet window to use for the operator's console, e.g. by use of the telnet command.
    It seems that the telnet has undergone "improvement" in releases of the Windows more recent than mine, and I've yet to succeed in turning off local echo on a Windows XP system.
    Hyperterm works fine for this purpose.
  6. Start the George3 executive emulator by typing:
         g3exec-vc -c DA GEORGE3
       This emulates the command DA GEORGE3 on the operator's console of an ICL 1900. The system's response will end with the line:
        Waiting for a console telnet connection
  7. Switch to the telnet window and connect to port 1900 on localhost. The system's response will be of the form:
        George 3 operators console: connected
            
    (which comes from the emulator)

        LOADED


    SCF SYSTEM NOT RUNNING
    RESIDENCE 4 REDUCED BY 1K WORDS
  8. You should now be asked the question:
        RESTORE?
      to which you should answer: 7
  9. The system will invite you to mount the appropriate tape.
  10. Press control-B. This is gives access to the facility for emulating operator actions. The system will respond with:
        Operator action:-
  11. Respond with:
        M25,11000
         The console should now show:
         Operator action:- M25,11000 O.K. Mounted - read only
You should now be in familiar territory.

The users :MANAGER and :SYSTEM have been set low security — not what you would expect on a real system.

There is a card reader (file data/CR04) which contains various input commands and two speciman Algol68 jobs. In order to run it, just engage the card reader — press control-B, and reply with e4. The output appears on the lineprinter, which you will find in file data/LP10.

You will be asked to mount tape 11000 with a write permit ring. Again use control-B, but the command to mount the tape this time should be:
    M25,11000,W

However, the Algol68 jobs will fail because George's installation parameters are not suitably set. The initial deck of cards contained a macro to remedy this.

Press TAB which simulates the ICL1900 INPUT button, and type INSTPARS. This runs a macro which sets the correct installation parameters.

You can now engage the card reader again, and this time the Algol68 jobs will run correctly.

When you have seen enough, just press F5, and type POST.

When you want to start George up again, do the same, until you get the query
    RESTORE?
  when you should answer: N

MOP

The system has a separate 7903 emulator, which needs to run in another window. If you have run up the system as described above, it will have complained that the 7903 (unit 57) is inoperable. The 7903 emulator is a Java program in ICL7903.class. For those whose machines do not have Java installed, you can install it from Sun's java website. Java 2 standard edition is what you need. Actually you only need the Java run-time system.
  1. Create another command window and set the current directory to g3run.
  2. Start the 7903 with 10 teletypes by typing:
        java -classpath bin ICL7903 10 0
  3. It will respond with
        Listening for IPB connection
        Listening for TTY connections
This screen needs no further attention. You can just leave it running. If you restart George there is no need to restart the 7903. To stop the 7903 emulation, just do a control-C on this screen.

MOP teletype terminals are just telnet windows, using whatever telnet emulator you please. You connect to the 7903 by making a telnet call to the usual telnet port (i.e. 23). On the machine running the emulator this is easily done by telnet localhost, but you can also call across the net to the machine running the 7903 emulator, and have mop jobs running on multiple keyboards.

Emulating the operator's console and the operator

The ICL 1900 had a panel of buttons to the right of the keyboard. These are emulated as follows:
INPUTtab
CANCELescape
F5control-A
In addition, there are a few facilities for emulating the actions of operators. These are all accessed via control-B, as in the mag tape loading above. The full set of facilities is:
Engage a deviceE3to engage unit 3
Define the tape library directoryLdir to define the tape library is living in directory dir
Mount a mag tape without WPRM25,23456to mount tape 23456 on unit 25
Mount a mag tape with WPRM25,23456,Wto mount tape 23456 on unit 25 with write-permit
Mount a brand new mag tape with WPRM25,23456,Nto mount a new tape 23456 on unit 25 with write-permit
Set 7903 inoperableI57to set the 7903 inoperable
Set debug levelD3to set debug level 3, not for general use
As a true emulation, the operator's console does not support lower case letters. In some environments this may lead to problems with defining the tape library.

Lineprinter

The lineprinter is on unit 10, and this is emulated by the file data/LP10. The file is readable while it is being written, so you can send printer output and then look at it with a text editor, e.g. wordpad. Output is appended to this file, so you need to erase it from time to time.

Card reader

There is a card reader on unit 3, and this is emulated by the file data/CR03. The file is released when the card reader disengages, and is read from the beginning each time that you engage the card reader. You can prepare jobs with any text editor and then run them by engaging the reader. The same applies to use of the input command. There is a second card reader on unit 4, emulated by the file data/CR04.

Magnetic Tape

The tape library is in directory tapes. There is a single dump tape holding increments 4 to 7. There are 4 tape decks, numbered 22, 23, 24 and 25.

Disc Drives

Each disc drive is emulated by a file in the directory data. Thus a disc drive on unit 40 is emulated by the file data/U40. The allocation algorithm of the George3 filestore is such that as soon as a disc is used for filestore, its size expands to 60 Mbytes. The configuration loaded from the ZIP file produces 5 disc drives, units 40, 41, 42, 43 and 44. Each contains a single exofile of 60 Mbytes, whose names are respectively GEORGE3, FS3, FS5, FS6, FS7. The filestore configuration in the file data/CR03 that is read by the loader/allocator only uses the first 3 of these. If you want to add in more discs to your filestore, just modify this to include residences FS6 and FS7.

What doesn't work

The implementation of the 7903 emulation does not implement the MOP terminal time out. While recognising that this was always an infuriating aspect of the system, it should really be there for verisimilitude. Perhaps it should be included optionally via a parameter to the 7903 emulator.

The handling of errors in the parameters to g3exec is not right, and often leads to illegal instructions. The simulated command to the George3 exec must be in upper case. Note that there is no unit number in the simulated command. The unit is the first disc specified in config.sys, which is 40 with the configuration supplied. It has never been tested with any other value for the lowest numbered disc.

On some systems the time is surprising, although the date is correct. George3 appears to be Y2k compliant.


© David Holdsworth & Delwyn Holroyd 2003

All rights reserved until such time as we sort out an appropriate public licence.


Updates

If you wish to be notified when new versions are available, and/or when bugs get fixed, please e-mail: D.Holdsworth@leeds.ac.uk

It would also help us to know whether you successfully got George to work on your machine, and what difficulties you encountered on the way.